// 封装请求基础路径
import axios from "axios";
import { Toast } from "vant";
axios.defaults.baseURL = "http://192.168.109.59:3000" // 127.0.0.1

// 目标，监听到所有的请求，在请求发送出去之前要监听到，并在请求发送出去之前
// 给请求添加Authorization 属性把token传递给后台。

// 添加请求拦截器
axios.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    // console.log(12, config);
    // 统一设置token值
    let token = localStorage.getItem("72-token")
    if(token){
        // 向请求中添加token
        config.headers.Authorization = token;
    }

    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
// 响应拦截器就是：请求的响应数据在被then或者catch接收之前会触发的函数
axios.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  console.log(response);
  // 判断用户没有登录，但进行了某些需要登录后才能做的操作的情况下，
  // 可以直接跳转到登录页面
  if(response.data&&response.data.message == "用户信息验证失败"){
    Toast.fail("未登录，请求登录")
    // console.log(35,location);
    let redirectUrl = location.href;
    setTimeout(() => {
      location.href = "http://localhost:8080/#/login?redirectUrl="+redirectUrl
    }, 1000);
  }
  return response;
}, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error);
});

// 导出
export default axios